home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / g_quake / kuaqe2.zip / TARBABY.QC < prev    next >
Text File  |  1996-07-25  |  7KB  |  223 lines

  1. /*
  2. ==============================================================================
  3.  
  4. BLOB
  5.  
  6. ==============================================================================
  7. */
  8.  
  9. $cd /raid/quake/id1/models/tarbaby
  10. $origin 0 0 24
  11. $base base        
  12.  
  13. $skin skin
  14.  
  15. $frame walk1 walk2 walk3 walk4  walk5 walk6 walk7 walk8 walk9 walk10
  16. $frame walk11 walk12 walk13 walk14 walk15 walk16 walk17 walk18 walk19
  17. $frame walk20 walk21 walk22 walk23 walk24 walk25
  18.  
  19. $frame run1 run2 run3 run4 run5 run6  run7 run8 run9 run10 run11 run12 run13
  20. $frame run14 run15 run16 run17 run18 run19 run20 run21 run22 run23
  21. $frame run24 run25
  22.  
  23. $frame jump1 jump2 jump3 jump4 jump5 jump6
  24.  
  25. $frame fly1 fly2 fly3 fly4
  26.  
  27. $frame exp
  28.  
  29. void()    tbaby_stand1    =[    $walk1,        tbaby_stand1    ] {ai_stand();};
  30.  
  31. void()    tbaby_hang1        =[    $walk1,        tbaby_hang1    ] {ai_stand();};
  32.  
  33. void()    tbaby_walk1    =[    $walk1,        tbaby_walk2    ] {ai_turn();};
  34. void()    tbaby_walk2    =[    $walk2,        tbaby_walk3    ] {ai_turn();};
  35. void()    tbaby_walk3    =[    $walk3,        tbaby_walk4    ] {ai_turn();};
  36. void()    tbaby_walk4    =[    $walk4,        tbaby_walk5    ] {ai_turn();};
  37. void()    tbaby_walk5    =[    $walk5,        tbaby_walk6    ] {ai_turn();};
  38. void()    tbaby_walk6    =[    $walk6,        tbaby_walk7    ] {ai_turn();};
  39. void()    tbaby_walk7    =[    $walk7,        tbaby_walk8    ] {ai_turn();};
  40. void()    tbaby_walk8    =[    $walk8,        tbaby_walk9    ] {ai_turn();};
  41. void()    tbaby_walk9    =[    $walk9,        tbaby_walk10    ] {ai_turn();};
  42. void()    tbaby_walk10    =[    $walk10,        tbaby_walk11    ] {ai_turn();};
  43. void()    tbaby_walk11    =[    $walk11,        tbaby_walk12    ] {ai_walk(2);};
  44. void()    tbaby_walk12    =[    $walk12,        tbaby_walk13    ] {ai_walk(2);};
  45. void()    tbaby_walk13    =[    $walk13,        tbaby_walk14    ] {ai_walk(2);};
  46. void()    tbaby_walk14    =[    $walk14,        tbaby_walk15    ] {ai_walk(2);};
  47. void()    tbaby_walk15    =[    $walk15,        tbaby_walk16    ] {ai_walk(2);};
  48. void()    tbaby_walk16    =[    $walk16,        tbaby_walk17    ] {ai_walk(2);};
  49. void()    tbaby_walk17    =[    $walk17,        tbaby_walk18    ] {ai_walk(2);};
  50. void()    tbaby_walk18    =[    $walk18,        tbaby_walk19    ] {ai_walk(2);};
  51. void()    tbaby_walk19    =[    $walk19,        tbaby_walk20    ] {ai_walk(2);};
  52. void()    tbaby_walk20    =[    $walk20,        tbaby_walk21    ] {ai_walk(2);};
  53. void()    tbaby_walk21    =[    $walk21,        tbaby_walk22    ] {ai_walk(2);};
  54. void()    tbaby_walk22    =[    $walk22,        tbaby_walk23    ] {ai_walk(2);};
  55. void()    tbaby_walk23    =[    $walk23,        tbaby_walk24    ] {ai_walk(2);};
  56. void()    tbaby_walk24    =[    $walk24,        tbaby_walk25    ] {ai_walk(2);};
  57. void()    tbaby_walk25    =[    $walk25,        tbaby_walk1    ] {ai_walk(2);};
  58.  
  59. void()    tbaby_run1    =[    $run1,        tbaby_run2    ] {ai_face();};
  60. void()    tbaby_run2    =[    $run2,        tbaby_run3    ] {ai_face();};
  61. void()    tbaby_run3    =[    $run3,        tbaby_run4    ] {ai_face();};
  62. void()    tbaby_run4    =[    $run4,        tbaby_run5    ] {ai_face();};
  63. void()    tbaby_run5    =[    $run5,        tbaby_run6    ] {ai_face();};
  64. void()    tbaby_run6    =[    $run6,        tbaby_run7    ] {ai_face();};
  65. void()    tbaby_run7    =[    $run7,        tbaby_run8    ] {ai_face();};
  66. void()    tbaby_run8    =[    $run8,        tbaby_run9    ] {ai_face();};
  67. void()    tbaby_run9    =[    $run9,        tbaby_run10    ] {ai_face();};
  68. void()    tbaby_run10    =[    $run10,        tbaby_run11    ] {ai_face();};
  69. void()    tbaby_run11    =[    $run11,        tbaby_run12    ] {ai_run(2);};
  70. void()    tbaby_run12    =[    $run12,        tbaby_run13    ] {ai_run(2);};
  71. void()    tbaby_run13    =[    $run13,        tbaby_run14    ] {ai_run(2);};
  72. void()    tbaby_run14    =[    $run14,        tbaby_run15    ] {ai_run(2);};
  73. void()    tbaby_run15    =[    $run15,        tbaby_run16    ] {ai_run(2);};
  74. void()    tbaby_run16    =[    $run16,        tbaby_run17    ] {ai_run(2);};
  75. void()    tbaby_run17    =[    $run17,        tbaby_run18    ] {ai_run(2);};
  76. void()    tbaby_run18    =[    $run18,        tbaby_run19    ] {ai_run(2);};
  77. void()    tbaby_run19    =[    $run19,        tbaby_run20    ] {ai_run(2);};
  78. void()    tbaby_run20    =[    $run20,        tbaby_run21    ] {ai_run(2);};
  79. void()    tbaby_run21    =[    $run21,        tbaby_run22    ] {ai_run(2);};
  80. void()    tbaby_run22    =[    $run22,        tbaby_run23    ] {ai_run(2);};
  81. void()    tbaby_run23    =[    $run23,        tbaby_run24    ] {ai_run(2);};
  82. void()    tbaby_run24    =[    $run24,        tbaby_run25    ] {ai_run(2);};
  83. void()    tbaby_run25    =[    $run25,        tbaby_run1    ] {ai_run(2);};
  84.  
  85.  
  86. //============================================================================
  87.  
  88.  
  89. void()    tbaby_jump1;
  90.  
  91. void()    Tar_JumpTouch =
  92. {
  93.     local    float    ldmg;
  94.  
  95.     if (other.takedamage && other.classname != self.classname)
  96.     {
  97.         if ( vlen(self.velocity) > 400 )
  98.         {
  99.             ldmg = 10 + 10*random();
  100.             T_Damage (other, self, self, ldmg);    
  101.             sound (self, CHAN_WEAPON, "blob/hit1.wav", 1, ATTN_NORM);
  102.         }
  103.     }
  104.     else
  105.         sound (self, CHAN_WEAPON, "blob/land1.wav", 1, ATTN_NORM);
  106.  
  107.  
  108.     if (!checkbottom(self))
  109.     {
  110.         if (self.flags & FL_ONGROUND)
  111.         {    // jump randomly to not get hung up
  112. //dprint ("popjump\n");
  113.     self.touch = SUB_Null;
  114.     self.think = tbaby_run1;
  115.     self.movetype = MOVETYPE_STEP;
  116.     self.nextthink = time + 0.1;
  117.  
  118. //            self.velocity_x = (random() - 0.5) * 600;
  119. //            self.velocity_y = (random() - 0.5) * 600;
  120. //            self.velocity_z = 200;
  121. //            self.flags = self.flags - FL_ONGROUND;
  122.         }
  123.         return;    // not on ground yet
  124.     }
  125.  
  126.     self.touch = SUB_Null;
  127.     self.think = tbaby_jump1;
  128.     self.nextthink = time + 0.1;
  129. };
  130.  
  131. void()    tbaby_jump5;
  132.  
  133. void()    tbaby_fly1        =[    $fly1,    tbaby_fly2    ] {};
  134. void()    tbaby_fly2        =[    $fly2,    tbaby_fly3    ] {};
  135. void()    tbaby_fly3        =[    $fly3,    tbaby_fly4    ] {};
  136. void()    tbaby_fly4        =[    $fly4,    tbaby_fly1    ] {
  137. self.cnt = self.cnt + 1;
  138. if (self.cnt == 4)
  139. {
  140. //dprint ("spawn hop\n");
  141. tbaby_jump5 ();
  142. }
  143. };
  144.  
  145. void()    tbaby_jump1        =[    $jump1,    tbaby_jump2        ] {ai_face();};
  146. void()    tbaby_jump2        =[    $jump2,    tbaby_jump3        ] {ai_face();};
  147. void()    tbaby_jump3        =[    $jump3,    tbaby_jump4        ] {ai_face();};
  148. void()    tbaby_jump4        =[    $jump4,    tbaby_jump5        ] {ai_face();};
  149. void()    tbaby_jump5        =[    $jump5,    tbaby_jump6        ]
  150. {    
  151.     self.movetype = MOVETYPE_BOUNCE;
  152.     self.touch = Tar_JumpTouch;
  153.     makevectors (self.angles);
  154.     self.origin_z = self.origin_z + 1;
  155.     self.velocity = v_forward * 600 + '0 0 200';
  156.     self.velocity_z = self.velocity_z + random()*150;
  157.     if (self.flags & FL_ONGROUND)
  158.         self.flags = self.flags - FL_ONGROUND;
  159.     self.cnt = 0;
  160. };
  161. void()    tbaby_jump6    =[    $jump6,tbaby_fly1    ] {};
  162.  
  163.  
  164.  
  165. //=============================================================================
  166.  
  167. void()    tbaby_die1    =[    $exp,        tbaby_die2    ] {
  168. self.takedamage = DAMAGE_NO;
  169. };
  170. void()    tbaby_die2    =[    $exp,        tbaby_run1    ] 
  171. {
  172.     T_RadiusDamage (self, self, 120, world);
  173.  
  174.     sound (self, CHAN_VOICE, "blob/death1.wav", 1, ATTN_NORM);
  175.     self.origin = self.origin - 8*normalize(self.velocity);
  176.  
  177.     WriteByte (MSG_BROADCAST, SVC_TEMPENTITY);
  178.     WriteByte (MSG_BROADCAST, TE_TAREXPLOSION);
  179.     WriteCoord (MSG_BROADCAST, self.origin_x);
  180.     WriteCoord (MSG_BROADCAST, self.origin_y);
  181.     WriteCoord (MSG_BROADCAST, self.origin_z);
  182.     
  183.     BecomeExplosion ();
  184. };
  185.  
  186. //=============================================================================
  187.  
  188.  
  189. /*QUAKED monster_tarbaby (1 0 0) (-16 -16 -24) (16 16 24) Ambush
  190. */
  191. void() monster_tarbaby =
  192. {
  193.     if (deathmatch)
  194.     {
  195.         remove(self);
  196.         return;
  197.     }
  198.     precache_model2 ("progs/tarbaby.mdl");
  199.  
  200.     precache_sound2 ("blob/death1.wav");
  201.     precache_sound2 ("blob/hit1.wav");
  202.     precache_sound2 ("blob/land1.wav");
  203.     precache_sound2 ("blob/sight1.wav");
  204.     
  205.     self.solid = SOLID_SLIDEBOX;
  206.     self.movetype = MOVETYPE_STEP;
  207.  
  208.     setmodel (self, "progs/tarbaby.mdl");
  209.  
  210.     setsize (self, '-16 -16 -24', '16 16 40');
  211.     self.health = 80;
  212.  
  213.     self.th_stand = tbaby_stand1;
  214.     self.th_walk = tbaby_walk1;
  215.     self.th_run = tbaby_run1;
  216.     self.th_missile = tbaby_jump1;
  217.     self.th_melee = tbaby_jump1;
  218.     self.th_die = tbaby_die1;
  219.     
  220.     walkmonster_start ();
  221. };
  222.  
  223.